Reverse words in a string
Given an input string s, reverse the order of the words.
A word is defined as a sequence of non-space characters. The words in s will be separated by at least one space.
Return a string of the words in reverse order concatenated by a single space.
Note that s may contain leading or trailing spaces or multiple spaces between two words. The returned string should only have a single space separating the words. Do not include any extra spaces.
const reverseWords = (input) => {
let result = '';
let word = '';
let inWord = false;
for (let i = 0; i < input.length; i++) {
const char = input[i];
if (char !== ' ') {
word += char;
inWord = true;
} else if (inWord) {
if (result !== '') {
result = ' ' + result;
}
result = word + result;
word = '';
inWord = false;
}
}
if (inWord) {
if (result !== '') {
result = ' ' + result;
}
result = word + result;
}
return result;
}